/**
链接 ：https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3?tpId=13&tqId=23287&ru=/ta/sql-quick-study&qru=/ta/sql-quick-study/question-ranking
题目：

牛客最近来了一个新员工Fish，每天早晨总是会拿着一本英文杂志，写些句子在本子上。同事Cat对Fish写的内容颇感兴趣，有一天他向Fish借来翻看，但却读不懂它的意思。
例如，“nowcoder. a am I”。后来才意识到，这家伙原来把句子单词的顺序翻转了，正确的句子应该是“I am a nowcoder.”。Cat对一一的翻转这些单词顺序可不在行，你能帮助他么？
示例1
输入：
"nowcoder. a am I"
返回值：
"I am a nowcoder."

思路：
1. 先利用StringBuilder反转单词->得到反转后的数组
2. 对每个数组元素 利用栈先进后出的性质进行反转
*/

import java.util.Stack;

public class Solution {
      public static String ReverseSentence(String str) {
        StringBuilder sb = new StringBuilder(str);
        StringBuilder res = new StringBuilder();

        String reverse = sb.reverse().toString();
        String[] s = reverse.split(" ");
        for (int i = 0; i < s.length; i++) {
            Stack<Character> characters = new Stack<>();
            for (int j = 0; j < s[i].length(); j++) {
                characters.push(s[i].charAt(j));
            }
        while (!characters.isEmpty()){
            res.append(characters.pop());
        }
        res.append(" ");
        }
        String substring = res.substring(0, res.length() - 1);
        return substring;
    }
}